#include<iostream>
#include<vector>

using namespace std;

int m,n;
vector<vector<int>> map;

int dp(int x, int y)
{
    if(x==0&&y==0) return map[x][y];
    
    if(x==0) return dp(x,y-1)+map[x][y];

    if(y==0) return dp(x-1,y)+map[x][y];

    return min(dp(x,y-1), dp(x-1,y))+map[x][y];

}

int main()
{
    cin>>m>>n;
    for(int i=0;i<m;i++)
    {
        vector<int> temp;
        for(int j=0;j<n;j++)
        {
            int k;
            cin>>k;
            temp.push_back(k);
        }
        map.push_back(temp);
    }
    cout<<dp(m-1,n-1);
    return 0;
}